Naive Bayes Code


Multinomial Naive Bayes Algorithm Python Code

Data Perparation Code Python Code

Multinomial Naive Bayes Algorithm Python Code

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import confusion_matrix


player = pd.read_csv("label_clean_DF.csv")

playerTrainDF, playerTestDF = train_test_split(player,test_size = 0.3)
playerTestLabel = playerTestDF['label']

playerTestDF = playerTestDF.drop(["label"],axis = 1)
playerTrainDF_nolabel = playerTrainDF.drop(["label"],axis = 1)
playerTrainLabel = playerTrainDF['label']

dropcols = ['season','teamName','playerName','position']
playerTrainDF_nolabel_quant = playerTrainDF_nolabel.drop(dropcols,axis = 1)
playerTestDF_quant = playerTestDF.drop(dropcols,axis=1)

model = MultinomialNB()
model.fit(playerTrainDF_nolabel_quant,playerTrainLabel)

prediction = model.predict(playerTestDF_quant)

cnf_matrix = confusion_matrix(playerTestLabel, prediction)
print("\nThe confusion matrix is:")
print(cnf_matrix)

print(np.round(model.predict_proba(playerTestDF_quant),2))


labels = ['Good','Normal','Bad']
sns.heatmap(cnf_matrix, annot=True,cmap='Blues',xticklabels=labels, yticklabels=labels, cbar=False)
plt.title("Confusion Matrix",fontsize=20)
plt.xlabel("Actual", fontsize=15)
plt.ylabel("Predicted", fontsize=15)


prob_matrix = np.round(model.predict_proba(playerTestDF_quant),2)
plt.figure(figsize=(15, 15))
sns.heatmap(prob_matrix, annot=True,cmap='Blues',xticklabels=labels, cbar=False)
plt.title("Model Prediction Probability",fontsize=20)
plt.xlabel("Labels", fontsize=15)

  TOC